#include<bits/stdc++.h>

using namespace std;
typedef long long ll;

int a[100][100] = {
        {0},
        {0, 7},
        {0, 3, 8},
        {0, 8, 1, 0,},
        {0, 2, 7, 4, 4,},
        {0, 4, 5, 2, 6, 5}
};
int dp[100][100];
int n = 5;

int main() {
    for (int i = 1; i <= n; i++) {
        dp[n][i] = a[n][i];
    }
    for (int i = n - 1; i >= 1; i--) {
        for (int j = 1; j <= i; j++) {
            dp[i][j] = a[i][j] + max(dp[i + 1][j], dp[i + 1][j + 1]);
        }

    }

    cout << dp[1][1];//从左上角顶点a[1][1]滑落小球能 经过的最大分值
    return 0;
}